//package com.hyzh.latte.vehicle.socket;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import javax.websocket.*;
//import javax.websocket.server.PathParam;
//import javax.websocket.server.ServerEndpoint;
//import java.nio.ByteBuffer;
//import java.util.Iterator;
//import java.util.Map;
//import java.util.concurrent.ConcurrentHashMap;
//
//@Component
//@Slf4j
//@ServerEndpoint("/websocket/{uuid}")  // 接口路径 ws://117.173.156.97:32105/nezha/websocket/f10f96f5-6d23-412f-84c8-89cbb9f7f7c3;
//public class WebSocket {
//
//
//    private static ConcurrentHashMap<String,Session> sessionPool = new ConcurrentHashMap<String,Session>();
//
//    /**
//     * 链接成功调用的方法
//     */
//    @OnOpen
//    public void onOpen(Session session, @PathParam(value="uuid")String uuid) {
//        try {
//            log.info("--websocket--onOpen---uuid {}--", uuid);
//            sessionPool.put(uuid, session);
//        } catch (Exception e) {
//        }
//    }
//
//    /**
//     * 链接关闭调用的方法
//     */
//    @OnClose
//    public void onClose(Session session) {
//        log.info("--websocket--close-----");
//        if (null == session){
//            return;
//        }
//        try {
//
//            for (Iterator<Map.Entry<String, Session>> it = sessionPool.entrySet().iterator(); it.hasNext();){
//                Map.Entry<String, Session> item = it.next();
//                Session ss =item.getValue();
//                if(session.getId().equals(ss.getId())){
//                    it.remove();
//                }
//            }
//        } catch (Exception e) {
//        }
//    }
//    /**
//     * 收到客户端消息后调用的方法
//     * 只接收心跳数据返回给前端
//     * @param message
//     */
//    @OnMessage
//    public void onMessage(String message, @PathParam("uuid") String uuid) {
//        log.info("【websocket消息】收到客户端消息:"+message);
//        if("ping".equals(message)){
//            sendOneMessage(uuid, "pong");
//        }
//    }
//
//    /** 发送错误时的处理
//     * @param session
//     * @param error
//     */
//    @OnError
//    public void onError(Session session, Throwable error) {
//        log.error("用户错误,原因:"+error.getMessage());
//        error.printStackTrace();
//    }
//
//
//    // 此为单点消息
//    public void sendOneMessage(String uuid, String message) {
//        Session session = sessionPool.get(uuid);
//        if (session != null && session.isOpen()) {
//            try {
//                log.info("---------websocket--------{}---{}---", uuid, message);
//                session.getAsyncRemote().sendText(message);
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }else {
//            log.error("----------websocket------united-----------");
//        }
//    }
//
//}